const CryptoJS = require('crypto-js');

const KEY = CryptoJS.enc.Utf8.parse('yydskno1me888888'); // 16字节密钥

/**
 * 加密数据（AES-128-ECB，Pkcs7填充）
 * @param {Object} data - 要加密的数据对象
 * @returns {String} - 加密后的字符串
 */
const encryptData = (data) => {
    try {
        const text = typeof data === 'string' ? data : JSON.stringify(data);
        const encrypted = CryptoJS.AES.encrypt(text, KEY, {
            mode: CryptoJS.mode.ECB,
            padding: CryptoJS.pad.Pkcs7,
        });
        return encrypted.toString();
    } catch (error) {
        console.error('数据加密失败:', error);
        throw new Error('数据加密失败');
    }
};

/**
 * 解密数据（AES-128-ECB，Pkcs7填充）
 * @param {String} encryptedData - 加密后的字符串
 * @returns {Object} - 解密后的数据对象
 */
const decryptData = (encryptedData) => {
    try {
        const decrypted = CryptoJS.AES.decrypt(encryptedData, KEY, {
            mode: CryptoJS.mode.ECB,
            padding: CryptoJS.pad.Pkcs7,
        });
        const decryptedText = CryptoJS.enc.Utf8.stringify(decrypted);
        return JSON.parse(decryptedText);
    } catch (error) {
        console.error('数据解密失败:', error);
        throw new Error('数据解密失败');
    }
};

module.exports = {
    encryptData,
    decryptData
}; 